As is well known to those skilled in the art, “congestion control” is used to control the transmission rate of network flows so as to maximize throughput while fairly sharing the capacity of bottleneck links in the network. Further, real-time communication (RTC) applications such as video conferencing, tele-presence, online games, virtual-reality, etc., are becoming increasingly popular and constitute a large percentage of Internet traffic.
Although the topics of rate control and congestion control have been extensively studied, most existing research has focused on optimizing throughput performance for non real-time Internet applications, such as file download, web browsing, video-on-demand, etc. Most existing techniques operate at high congestion levels (e.g., high queuing delay and packet loss rates) to increase throughput levels, thereby resulting in poor performance for RTC-type applications. Conversely, low operating congestion levels (e.g., low queuing delay and low packet loss) tend to provide an improved user experience with respect to RTC-type applications. Unfortunately, existing techniques that attempt to operate at low congestion levels do not generally work reliably across increasingly complex combinations of wired and wireless networks (e.g., 3G, 4G, Wi-Fi, WiMAX, etc.) which tend to exhibit significant noise in congestion signals.
More specifically, the performance of RTC applications depends on total throughput as well as operating queuing delay and packet loss. As an example, video conferencing generates perceivable delay degradation to human observers if the end-to-end delay exceeds about 200 ms or the uncorrectable packet loss is larger than about 1%. At the same time, these applications are also bandwidth intensive, as a higher operating bandwidth leads to increased audio/visual quality. Unfortunately, most existing congestion control techniques consider only bandwidth utilization as a primary metric and consider a high operating congestion level to be acceptable. Consequently, existing congestion control techniques generally fail to deliver satisfactory performance for RTC-type applications.